public class MyQueueTest {
    public static void main(String[] args) {
        // 1. 创建一个新的队列
        MyQueue queue = new MyQueue();
        System.out.println("新创建的队列是否为空? " + queue.isEmpty()); // true

        // 2. 测试入队操作
        System.out.println("\n=== 测试入队操作 ===");
        queue.offer(10);
        queue.offer(20);
        queue.offer(30);
        System.out.println("入队10, 20, 30后队列大小: " + queue.size()); //  3
        System.out.println("队列是否为空? " + queue.isEmpty()); //  false

        // 3. 测试查看队头元素
        System.out.println("\n=== 测试查看队头 ===");
        System.out.println("当前队头元素: " + queue.peek()); //  10
        System.out.println("查看队头后队列大小: " + queue.size()); //  3 (不改变)

        // 4. 测试出队操作
        System.out.println("\n=== 测试出队操作 ===");
        System.out.println("第一次出队: " + queue.poll()); //  10
        System.out.println("出队后队列大小: " + queue.size()); //  2
        System.out.println("新的队头元素: " + queue.peek()); //  20

        System.out.println("第二次出队: " + queue.poll()); //  20
        System.out.println("第三次出队: " + queue.poll()); //  30
        System.out.println("出队后队列大小: " + queue.size()); //  0

        // 5. 测试空队列操作
        System.out.println("\n=== 测试空队列操作 ===");
        System.out.println("从空队列出队: " + queue.poll()); //  -1
        System.out.println("查看空队列队头: " + queue.peek()); //  -1
        System.out.println("空队列大小: " + queue.size()); //  0
        System.out.println("队列是否为空? " + queue.isEmpty()); //  true


        // 7. 测试连续操作
        System.out.println("\n=== 测试连续操作 ===");
        for (int i = 1; i <= 5; i++) {
            queue.offer(i * 100);
        }
        System.out.println("连续添加5个元素后队列大小: " + queue.size()); //  5
        while (!queue.isEmpty()) {
            System.out.println("出队: " + queue.poll() + ", 剩余大小: " + queue.size());
        }
        /*输出：
        连续添加5个元素后队列大小: 5
        出队: 100, 剩余大小: 4
        出队: 200, 剩余大小: 3
        出队: 300, 剩余大小: 2
        出队: 400, 剩余大小: 1
        出队: 500, 剩余大小: 0*/
    }
}
